This invention relates to an apparatus and method for processing data.
Data processing frequently involves the evaluation of expressions, formed by combining operand values and operators according to defined rules of syntax. For example, the expression
(A and B) or (not C) involves operand values A, B and C and logical operators xe2x80x9candxe2x80x9d, xe2x80x9corxe2x80x9d and xe2x80x9cnotxe2x80x9d. The evaluation of an expression returns a result value, which in the above example will be either xe2x80x9ctruexe2x80x9d or xe2x80x9cfalsexe2x80x9d.
In many data processing applications, the length of time taken to acquire an operand value cannot be predicted. In some cases, a value may be available in milliseconds (for example where it is already held in cache memory) while in other cases it may take weeks (for example, where information from a customer has to be obtained by post).
The object of the present invention is to provide a novel apparatus and method for efficiently handling expressions which are subject to such unpredictability.
According to the invention a data processing method comprises:
(a) issuing parallel requests to acquire a plurality of operands for evaluating an expression,
(b) detecting, upon receipt of a first subset of the operands, whether a second subset of the operands is still required to evaluate the expression, and
(c) if the second subset is no longer required, cancelling the request for the second subset.
The invention also includes data processing apparatus for performing this method.